home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
PROGRAMM
/
PASCAL
/
1463.ZIP
/
DRAW-2D.ARC
/
DRAWOBJ.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1986-12-03
|
6KB
|
175 lines
PROCEDURE DRAWOBJ;
VAR
R:REAL;
BEGIN
CASE OTYP OF
1: BEGIN (*POINT*)
IF BUTTON2 THEN RING2;
IF BUTTON1 THEN
BEGIN
M1 := 2;
MOUSE(M1,M2,M3,M4); (* HIDE MOUSE CURSOR *)
POINT(PIXX,PIXY,HRCOLOR);
M1 := 1;
MOUSE(M1,M2,M3,M4); (* SHOW MOUSE CURSOR *)
WITH DRAWARY[OBJPTR] DO (* STORE OBJECT IN ARRAY *)
BEGIN
OBJTYP := OTYP;
COLOR := HRCOLOR;
X1 := X;
Y1 := Y;
X2 := 0.0;
Y2 := 0.0;
X3 := 0.0;
Y3 := 0.0;
END;
OBJPTR := OBJPTR + 1;
MOVCUR(23,53);
WRITE(MAXSIZE-OBJPTR+1:3);
END;
END;
2,5,6: BEGIN (*LINE*)
IF BUTTON2 THEN BEGIN STARTOBJ := FALSE; RING2; END
else IF (BUTTON1) THEN
if not(startobj) then
BEGIN
STARTOBJ := TRUE;
PLOT(PIXX,PIXY,0);
M1 := 2;
MOUSE(M1,M2,M3,M4); (* HIDE MOUSE *)
MARK(PIXX,PIXY,HRCOLOR);
M1 := 1; (* SHOW MOUSE *)
MOUSE(M1,M2,M3,M4);
XPREV := PIXX;
YPREV := PIXY;
LASTX := X;
LASTY := Y;
END
else
BEGIN
STARTOBJ := FALSE;
M1 := 2;
MOUSE(M1,M2,M3,M4); (* HIDE MOUSE CURSOR *)
CASE OTYP OF
2: BEGIN END;
5: BEGIN
PIXX := XPREV;
X := LASTX;
END;
6: BEGIN
PIXY := YPREV;
Y := LASTY;
END;
END; (* CASE *)
LINE(PIXX,PIXY,HRCOLOR);
M1 := 1;
MOUSE(M1,M2,M3,M4); (* SHOW MOUSE CURSOR *)
WITH DRAWARY[OBJPTR] DO (* STORE OBJECT IN ARRAY *)
BEGIN
OBJTYP := 2;
COLOR := HRCOLOR;
X1 := LASTX;
Y1 := LASTY;
X2 := X;
Y2 := Y;
X3 := 0.0;
Y3 := 0.0;
END;
OBJPTR := OBJPTR + 1;
MOVCUR(23,53);
WRITE(MAXSIZE-OBJPTR+1:3);
IF (OTYP = 2) AND CLIN THEN
BEGIN
STARTOBJ := TRUE;
XPREV := PIXX;
YPREV := PIXY;
LASTX := X;
LASTY := Y;
END;
END;
END;
3: BEGIN (*BOX*)
IF BUTTON2 THEN BEGIN STARTOBJ := FALSE; RING2; END
else IF (BUTTON1) THEN
if not(startobj) then
BEGIN
STARTOBJ := TRUE;
PLOT(PIXX,PIXY,0);
M1 := 2;
MOUSE(M1,M2,M3,M4); (* HIDE MOUSE *)
MARK(PIXX,PIXY,HRCOLOR);
M1 := 1; (* SHOW MOUSE *)
MOUSE(M1,M2,M3,M4);
XPREV := PIXX;
YPREV := PIXY;
LASTX := X;
LASTY := Y;
END
else
BEGIN
STARTOBJ := FALSE;
M1 := 2;
MOUSE(M1,M2,M3,M4); (* HIDE MOUSE CURSOR *)
BOX(PIXX,PIXY,HRCOLOR);
M1 := 1;
MOUSE(M1,M2,M3,M4); (* SHOW MOUSE CURSOR *)
WITH DRAWARY[OBJPTR] DO (* STORE OBJECT IN ARRAY *)
BEGIN
OBJTYP := OTYP;
COLOR := HRCOLOR;
X1 := LASTX;
Y1 := LASTY;
X2 := X;
Y2 := LASTY;
X3 := X;
Y3 := Y;
END;
OBJPTR := OBJPTR + 1;
MOVCUR(23,53);
WRITE(MAXSIZE-OBJPTR+1:3);
END;
END;
4: BEGIN (*CIRCLE*)
IF BUTTON2 THEN BEGIN STARTOBJ := FALSE; RING2; END
else IF (BUTTON1) THEN
if not(startobj) then
BEGIN
STARTOBJ := TRUE;
PLOT(PIXX,PIXY,0);
M1 := 2;
MOUSE(M1,M2,M3,M4); (* HIDE MOUSE *)
MARK(PIXX,PIXY,HRCOLOR);
M1 := 1; (* SHOW MOUSE *)
MOUSE(M1,M2,M3,M4);
XPREV := PIXX;
YPREV := PIXY;
LASTX := X;
LASTY := Y;
END
else
BEGIN
STARTOBJ := FALSE;
R := SQRT( (X-LASTX)*(X-LASTX) + (Y-LASTY)*(Y-LASTY) );
M1 := 2;
MOUSE(M1,M2,M3,M4); (* HIDE MOUSE CURSOR *)
GRCIRCLE(LASTX,LASTY,R,HRCOLOR);
M1 := 1;
MOUSE(M1,M2,M3,M4); (* SHOW MOUSE CURSOR *)
WITH DRAWARY[OBJPTR] DO (* STORE OBJECT IN ARRAY *)
BEGIN
OBJTYP := OTYP;
COLOR := HRCOLOR;
X1 := LASTX;
Y1 := LASTY;
X2 := R;
Y2 := 0.0;
X3 := 0.0;
Y3 := 0.0;
END;
OBJPTR := OBJPTR + 1;
MOVCUR(23,53);
WRITE(MAXSIZE-OBJPTR+1:3);
END;
END;
END; (*CASE *)
END; (* PROC *)